﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	char a[1000];//默认是signed char取值范围是-128~127
	int i;
	for (i = 0; i < 1000; i++)
	{
		a[i] = -1 - i;
	}
	//-1 -2 -3 -4 -5 ... -1000
	//\0的ASCLL码值是0，我们找到0即可前面-1~-128都正常
	//当他变成-129时再进行整型提升会被编译器解析成127，然后126...最后变为0就停止了
	//0后面还有数字，但是strlen不会再统计了
	printf("%d", strlen(a));//求字符串的长度，其实是统计\0之前的字符个数
	return 0;
}
#include <stdio.h>
unsigned char i = 0;
int main()
{
	for (i = 0; i <= 255; i++)
	{
		printf("hello world\n");
	}
	return 0;
}
#include <stdio.h>
int main()
{
	unsigned int i;
	for (i = 9; i >= 0; i--)
	{
		printf("%u\n", i);
	}
	return 0;
}
#include <stdio.h>
//X86环境 ⼩端字节序 
int main()
{
	int a[4] = { 1, 2, 3, 4 };
	int* ptr1 = (int*)(&a + 1);
	int* ptr2 = (int*)((int)a + 1);
	printf("%x, %x", ptr1[-1], *ptr2);
	return 0;
}
#include <stdio.h>
int main()
{
	int n = 9;//整数存储方式
	//00000000 00000000 00000000 00001001
	float* pFloat = (float*)&n;
	printf("n的值为：%d\n", n);//9
	//0 
	printf("*pFloat的值为：%f\n", *pFloat);
	*pFloat = 9.0;
	printf("n的值为：%d\n", n);
	printf("*pFloat的值为：%f\n", *pFloat);
	return 0;
//}